package org.shj.spark.sql

import org.apache.spark.sql.SparkSession
import org.shj.spark.util.Util
import org.apache.spark.sql.SaveMode

object SaveToFileDemo {
  def main(args: Array[String]): Unit = {
    val spark = SparkSession.builder().appName("DatasetCreateMethod").master("local").getOrCreate()
    spark.sparkContext.setLogLevel("WARN")
    
    val df = spark.read.json(Util.fullPath("employees.json"))
    df.show()
    
    /**
		 * save 方法指定的是目录。另外，在pom里加入hadoop的包后，会认为是要存在HDFS上，所以会报错。
		 * 运行在本地测时，需要去掉Hadoop的包
		 * 如果是append模式，并不是在上一次的结果文件上追加内容，而是另外生成一个文件。跟源码中的说明有区别
		 * 如果是 overwrite 模式的话，则会清除上一次的结果文件
		 * 
		 */
    df.write.format("json").mode(SaveMode.Append).save("D:/download/tmp")
    //df.write.format("json").mode(SaveMode.Overwrite).save("D:/download/tmp")
    
    spark.stop()
  }
}